package com.im.app.service.impl;

import java.util.List;

import com.im.app.mapper.AdminMapper;
import com.im.app.model.ServeGroupUser;
import com.im.app.model.Admin;
import com.im.app.model.User;
import com.im.app.service.IAdminService;
import com.im.app.utils.Response;
import com.im.app.utils.ResponseResult;
import com.im.app.utils.TokenUtils;
import com.im.app.utils.text.Convert;
import org.jim.core.cache.redis.JedisTemplate;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 子后台管理Service业务层处理
 *
 * @author ruoyi
 * @date 2023-06-09
 */
@Service
public class AdminServiceImpl implements IAdminService
{
    @Resource
    private AdminMapper adminMapper;

    /**
     * 查询子后台管理
     *
     * @param id 子后台管理主键
     * @return 子后台管理
     */
    @Override
    public Admin selectAdminById(Integer id)
    {
        return adminMapper.selectAdminById(id);
    }

    @Override
    public ResponseResult<Object> login(String code){
        Admin admin = adminMapper.selectAdminByCode(code);
        if (admin != null){
            String token = TokenUtils.generateTokeCode();
            admin.setToken(token);

            try {
                JedisTemplate.me().set(token,admin,60*60*24);
            } catch (Exception e) {
                e.printStackTrace();
            }

            return Response.makeOKRsp().setData(admin);
        }
        return Response.makeErrRsp("卡密错误");
    }

    @Override
    public List<User> selectGroupUserList(Integer groupId){
        return adminMapper.selectGroupUserList(groupId);
    }
    @Override
    public int addGroupUsers(List<ServeGroupUser> groupUsers){
        return adminMapper.addGroupUsers(groupUsers);
    }

    @Override
    public int deletedGroupUsers(String ids){
        return adminMapper.deletedGroupUsers(Convert.toStrArray(ids));
    }

    /**
     * 查询子后台管理列表
     *
     * @param admin 子后台管理
     * @return 子后台管理
     */
    @Override
    public List<Admin> selectAdminList(Admin admin)
    {
        return adminMapper.selectAdminList(admin);
    }

    /**
     * 新增子后台管理
     *
     * @param admin 子后台管理
     * @return 结果
     */
    @Override
    public int insertAdmin(Admin admin) {
        return adminMapper.insertAdmin(admin);
    }

    /**
     * 修改子后台管理
     *
     * @param admin 子后台管理
     * @return 结果
     */
    @Override
    public int updateAdmin(Admin admin)
    {
        return adminMapper.updateAdmin(admin);
    }

    @Override
    public int updateAdminLuckMoney(Admin admin){
        return adminMapper.updateAdminLuckMoney(admin);
    }

    @Override
    public int updateAdminUseMoney(Admin admin){
        return adminMapper.updateAdminUseMoney(admin);
    }

    /**
     * 批量删除子后台管理
     *
     * @param ids 需要删除的子后台管理主键
     * @return 结果
     */
    @Override
    public int deleteAdminByIds(String ids) {
        return adminMapper.deleteAdminByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除子后台管理信息
     *
     * @param id 子后台管理主键
     * @return 结果
     */
    @Override
    public int deleteAdminById(Integer id)
    {
        return adminMapper.deleteAdminById(id);
    }
}
